package com.yxw.live_vod_boot.dto;



import com.yxw.live_vod_boot.entity.YxLiveDomainEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
//import lombok.EqualsAndHashCode;



    /*** 
    *@author 黄家旭
    *@date 2023/11/24 10:25:42
    *@update 2023/11/24 10:25:42
    **/
@Data
//@EqualsAndHashCode(callSuper = true)
public class YxLiveDomainDTO   implements Serializable
{
    private static final long serialVersionUID = 81700792742766L;
    /**
    *域名Id,本参数不用同步到服务器
    */
    @NotNull(message = "域名Id,本参数不用同步到服务器不可为空")
    @ApiModelProperty(value = "域名Id,本参数不用同步到服务器")
    private Integer Id;
    /**
    *域名
    */
    @ApiModelProperty(value = "域名")
    private String domainName;
    /**
    *域名的用途类别:0推流,1拉流
    */
    @ApiModelProperty(value = "域名的用途类别:0推流,1拉流")
    private Integer domainType;
    /**
    *是否需要URL鉴权:0不需要,1需要
    */
    @ApiModelProperty(value = "是否需要URL鉴权:0不需要,1需要")
    private Integer needUrlAuth;
    /**
    *secret
    */
    @ApiModelProperty(value = "secret")
    private String secretKey;
    /**
    *别名,即A记录
    */
    @ApiModelProperty(value = "别名,即A记录")
    private String cname;
    /**
    *名称空间
    */
    @ApiModelProperty(value = "名称空间")
    private String nameSpace;
    /**
    *生效状态:0禁用,1使用中
    */
    @ApiModelProperty(value = "生效状态:0禁用,1使用中")
    private Integer state;
    /**
    *创建人,本参数不用同步到服务器
    */
    @ApiModelProperty(value = "创建人,本参数不用同步到服务器")
    private Long createUserId;
    /**
    *创建时间,本参数不用同步到服务器
    */
    @ApiModelProperty(value = "创建时间,本参数不用同步到服务器")
    private java.util.Date createTime;
    /**
    *最后修改时间,本参数不用同步到服务器
    */
    @ApiModelProperty(value = "最后修改时间,本参数不用同步到服务器")
    private java.util.Date updateTime;
    /**
    *是否更新到火山服务器(0没有，1已跟新),更新关键参数时需要将本参数置为0，并更新update_time参数,本参数不用同步到服务器
    */
    @ApiModelProperty(value = "是否更新到火山服务器(0没有，1已跟新),更新关键参数时需要将本参数置为0，并更新update_time参数,本参数不用同步到服务器")
    private Integer updateToService;
    /**
    *更新到火山服务器的时间,本参数不用同步到服务器
    */
    @ApiModelProperty(value = "更新到火山服务器的时间,本参数不用同步到服务器")
    private java.util.Date updateToServiceTime;
    /**
    *默认使用状态:0候选,1默认使用,本参数不用同步到服务器
    */
    @ApiModelProperty(value = "默认使用状态:0候选,1默认使用,本参数不用同步到服务器")
    private Integer isDefault;
    /**
    *是否需要ssl加密:0不需要,1需要
    */
    @ApiModelProperty(value = "是否需要ssl加密:0不需要,1需要")
    private Integer needSsl;
    /**
    *证书Id
    */
    @ApiModelProperty(value = "证书Id")
    private Integer certificateId;
    /**
    *是否需要ip清单限制:0不需要,1需要(每个域名支持添加100个IP地址)
    */
    @ApiModelProperty(value = "是否需要ip清单限制:0不需要,1需要(每个域名支持添加100个IP地址)")
    private Integer needIplistLimit;
    /**
    *ip限制类别:0不需要,1黑名单,2白名单
    */
    @ApiModelProperty(value = "ip限制类别:0不需要,1黑名单,2白名单")
    private Integer ipLimitType;
    /**
    *是否需要网络带宽限制:0不需要,1需要
    */
    @ApiModelProperty(value = "是否需要网络带宽限制:0不需要,1需要")
    private Integer neeBandwidthLimit;
    /**
    *将DTO转换为ENTITY
    */
    public YxLiveDomainEntity ConverToEntity()
    {
        YxLiveDomainEntity oYxLiveDomainEntity = new YxLiveDomainEntity ();
        oYxLiveDomainEntity.setId(Id) ;
        oYxLiveDomainEntity.setDomainName(domainName) ;
        oYxLiveDomainEntity.setDomainType(domainType) ;
        oYxLiveDomainEntity.setNeedUrlAuth(needUrlAuth) ;
        oYxLiveDomainEntity.setSecretKey(secretKey) ;
        oYxLiveDomainEntity.setCname(cname) ;
        oYxLiveDomainEntity.setNameSpace(nameSpace) ;
        oYxLiveDomainEntity.setState(state) ;
        oYxLiveDomainEntity.setCreateUserId(createUserId) ;
        oYxLiveDomainEntity.setCreateTime(createTime) ;
        oYxLiveDomainEntity.setUpdateTime(updateTime) ;
        oYxLiveDomainEntity.setUpdateToService(updateToService) ;
        oYxLiveDomainEntity.setUpdateToServiceTime(updateToServiceTime) ;
        oYxLiveDomainEntity.setIsDefault(isDefault) ;
        oYxLiveDomainEntity.setNeedSsl(needSsl) ;
        oYxLiveDomainEntity.setCertificateId(certificateId) ;
        oYxLiveDomainEntity.setNeedIplistLimit(needIplistLimit) ;
        oYxLiveDomainEntity.setIpLimitType(ipLimitType) ;
        oYxLiveDomainEntity.setNeeBandwidthLimit(neeBandwidthLimit) ;
        return oYxLiveDomainEntity;
    }
}

